home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / gchess40.lha / gnuchess4.0p62 / src / makefile.dos < prev    next >
Makefile  |  1993-06-22  |  13KB  |  374 lines

  1. #
  2. # Makefile for GNU Chess
  3. # (Use this makefile when compiling under DOS using DJGPP)
  4. #
  5. # Copyright (c) 1992 Free Software Foundation
  6. #
  7. # This file is part of GNU CHESS.
  8. #
  9. # GNU Chess is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation; either version 2, or (at your option)
  12. # any later version.
  13. #
  14. # GNU Chess is distributed in the hope that it will be useful,
  15. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. # GNU General Public License for more details.
  18. #
  19. # You should have received a copy of the GNU General Public License
  20. # along with GNU Chess; see the file COPYING.  If not, write to
  21. # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  22. #
  23.  
  24. #
  25. # gnuchess  is a curses-based chess.
  26. # gnuchessn is a fancy-display-curses-based chess.
  27. # gnuchessr is a plain dumb-terminal chess (but with full variation output)
  28. # gnuchessc is suitable for chesstool use (mimics /usr/games/chess output)
  29. # gnuchessx is the xchess based chess.
  30. #
  31.  
  32. # The version number of this GNU and Xboard release
  33. VERS=    4.0
  34. XVERS = 2.0
  35.  
  36. # Relevant file areas.
  37. DIST=    ../README ../README.lang ../doc ../misc ../src ../test
  38.  
  39. # size of book to make
  40. # listed below are the book options and the size of the resulting book
  41. #
  42. # default is small
  43. # set BOOKTYPE to the book you want
  44. #
  45. #huge.book.data         1,450k
  46. #big.book.data            540k
  47. #med.book.data            240k
  48. #small.book.data      144K
  49. #tiny.book.data            78K
  50.  
  51. BOOKTYPE=huge.book.data
  52.  
  53. # Distribution directory
  54. DISTDIR= .
  55.  
  56. # Programs being distributed
  57. PROGS=gnuchess-$(VERS) xboard-$(XVERS)
  58. #PROGS=gnuchess-$(VERS)
  59.  
  60. # For -DGDBM option
  61. LIBS = -lm
  62.  
  63. # Change these to something less transitory, like /usr/games, and then
  64. # compile. Ask your system admin / unix guru to put gnuchess.{hash,lang,book}
  65. # in $(LIBDIR).
  66. # Where the binaries live.
  67. #BINDIR= /tmp_mnt/home/fsf/cracraft/Ch
  68. #BINDIR= /udir/mann/bin/alpha
  69. #BINDIR= /usr/local/bin
  70. BINDIR= /games/gnu40_62
  71. BINDIR1 = \games\gnu40_62
  72.  
  73. # Where language description, our book, and the persistent hash live.
  74. #LIBDIR= /usr/local/lib
  75. #LIBDIR= /udir/mann/lib/alpha
  76. LIBDIR= .
  77.  
  78. # Display routines.
  79. LCURSES=-lcurses -ltermcap
  80.  
  81. #compile options for gnuchess
  82. # -DAG[0-4]  selects a set of values for SpaceBonus tables
  83. # -DQUIETBACKGROUND don't print post information in background ( easy OFF)
  84. # -DNOMEMSET if your machine does not support memset
  85. # -DNOMATERIAL don't call it a draw when no pawns and both sides < rook
  86. # -DNODYNALPHA don't dynamically adjust alpha
  87. # -DHISTORY use history killer hueristic 
  88. # -DKILLT use killt killer hueristic 
  89. # -DHASGETTIMEOFDAY use gettimeofday for more accurate timing
  90. # -DOLDTIME use old ply time estimating function
  91. # -DCLIENT create client version for use with ICS
  92. # -DNOSCORESPACE don't use Scorespace heuristic
  93. # -DOLDXBOARD don't generate underpromote moves
  94. # -DGNU3 don't generate underpromote moves
  95. # -DLONG64 if you have 64bit longs
  96. # -DSYSV   if you are using SYSV
  97. # -DCACHE  Cache static evaluations 
  98. # -DE4OPENING always open e4 if white and respond to e4 with e5 if black
  99. # -DQUIETBOOKGEN Don't print errors while loading a book or generating a binbook
  100. # -DSEMIQUIETBOOKGEN Print less verbose errors while reading book or generating binbook
  101. # -DGDBM use gdbm based book
  102. # -DGDX  use random file based book
  103. # -DNULLMOVE include null move heuristic
  104. # some debug options
  105. # -DDEBUG8 dump board,movelist,input move to /tmp/DEBUG if illegal move
  106. # -DDEBUG9 dump move list from test command
  107. # -DDEBUG10 dump board and move after search before !easy begins
  108. # -DDEBUG11 dump board when the move is output
  109. # -DDEBUG12 dump boards between moves
  110. # -DDEBUG13 dump search control information for each move to /tmp/DEBUG
  111. # -DDEBUG33 dump book moves as read from book
  112. # -DDEBUG40 include extra values of variables for debugging  in game list
  113. # -DDEBUG41 dump post output to /tmp/DEBUG
  114. # the rest of the debug options are tied to the debuglevel command
  115. # -DDEBUG -DDEBUG4 set up code for debuglevel command
  116. #          debuglevel
  117. #               1 always force evaluation in evaluate
  118. #               4 print move list after search
  119. #               8 print move list after book before search
  120. #              16 print move list after each ply of search
  121. #              32 print adds to transposition table
  122. #              64 print returns from transposition table lookups
  123. #          256 print search tree as it is generated
  124. #          512 debug trace
  125. #         1024 interactive tree print
  126. #            debug? p#  where # is no. of plys to print from top of tree (default all plys)
  127. #                   XXXX moves specifying branch of tree to print (default all branches)
  128. #                   return terminates input
  129. #         2048 non-interactive trace print
  130.  
  131. # ICS client
  132. #OPT= -DAG4 -DQUIETBACKGROUND -DNOSCORESPACE -DHASGETTIMEOFDAY -DGNU3 -DHISTORY -DCACHE -DCLIENT -DE4OPENING -DGDX -DSEMIQUIETBOOKGEN -DNULLMOVE
  133. # gnufour
  134. #OPT= -DAG4 -DNOSCORESPACE -DHASGETTIMEOFDAY -DGNU3 -DHISTORY -DSEMIQUIETBOOKGEN -DQUIETBACKGROUND -DGDX   -DCACHE -DCLIENT -DNULLMOVE 
  135. # normal
  136. OPT= -DAG4 -DQUIETBACKGROUND -DNOSCORESPACE -DHASGETTIMEOFDAY -DHISTORY -DGDX -DSEMIQUIETBOOKGEN -DNULLMOVE -DCACHE
  137.  
  138. # The hashfile is a record of positions seen. It is used by
  139. # GNU Chess to avoid making the same mistakes, a form of learning.
  140. HASH=    -DHASHFILE=\"$(LIBDIR)/gnuchess.hash\"
  141.  
  142. # The "book" is a record of the first few moves, for playing good
  143. # moves easily and quickly, saving time, and irritating the human
  144. # opponent.
  145. #BOOK=    -DBOOK=\"$(LIBDIR)/gnuchess.book\"
  146. BOOK=    
  147. BINBOOK = -DBINBOOK=\"$(LIBDIR)/gnuchess.dat\"
  148.  
  149. # The language file describes capabilities of the program. Perhaps
  150. # it is useful for non-English speaking countries and customizing
  151. # for their convenience and chess happiness.
  152. LANG= -DLANGFILE=\"$(LIBDIR)/gnuchess.lang\"
  153.  
  154. # The compiler used for compiling this software.
  155. # Use this for a plain C compiler 
  156. #CC= cc $(OPT)
  157. # Use this for DEC's ANSI C compiler on Ultrix
  158. #CC= c89 $(OPT)
  159. # Use this if you are lucky enough to have GNU CC.
  160. CC=     gcc -Wall $(OPT)
  161. #CC=    cc $(OPT) # HPUX
  162. #CC=    /contrib/system/bin/gcc -W $(OPT)
  163.  
  164. # Miscellaneous CFLAGS. Uncomment the one you need and comment 
  165. # the other.
  166. #CFLAGS=  -O2 -p -Dinline=""     -traditional-cpp
  167. #CFLAGS= -O4 -Qpath .  # SunOS cc using unprotoize
  168. #CFLAGS= -O4 # Sun acc
  169. #CFLAGS= -g -traditional-cpp  # debug
  170. #CFLAGS= -O2 # DEC ANSI C (c89) on Ultrix.
  171. #CFLAGS= +O3 -Aa -D_HPUX_SOURCE -DSYSV # HPUX cc 
  172. #CFLAGS= -O   -finline-functions -fstrength-reduce -D__mips -D__LANGUAGE_C # gnu cc 1.40 on DS5000
  173. #CFLAGS= -O   -finline-functions -fstrength-reduce  # gnu cc 1.40 on others
  174. #CFLAGS= -O2 -funroll-loops -D__mips -D__LANGUAGE_C # gnu cc 2.00 on DS5000
  175. #CFLAGS= -O2 -D__alpha -D__LANGUAGE_C # gnu cc 2.00 on Flamingo
  176. #CFLAGS= -O2 -funroll-loops -traditional-cpp  # gnu cc  2.00 on SunOS
  177. CFLAGS= -O2 -funroll-loops  # gnu cc  2.00 on others
  178.  
  179. all : gnuchess.exe gnuchesr.exe gnuchesn.exe postprint.exe gnuan.exe game.exe bincheckr.exe checkgame.exe checkbook.exe
  180.  
  181. gnuchess.exe: mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomN.o uxdsp.o
  182.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -o gnuchess mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomN.o uxdsp.o $(LIBS)
  183.         $(CC) @tmp
  184.         strip gnuchess
  185.         aout2exe gnuchess
  186.         del gnuchess
  187.  
  188. gnuan.exe: mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o gnuan.o
  189.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -o gnuan mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o gnuan.o $(LIBS)
  190.         $(CC) @tmp
  191. #        strip gnuan
  192.         aout2exe gnuan
  193.         del gnuan
  194.  
  195. gnuchesr.exe: mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomR.o nondspR.o
  196.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -o gnuchesr mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomR.o nondspR.o $(LIBS)
  197.         $(CC) @tmp
  198.         strip gnuchesr
  199.         aout2exe gnuchesr
  200.         del gnuchesr
  201.  
  202. gnuchesn.exe: mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomN.o nuxdsp.o
  203.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -o gnuchesn mainN.o bookN.o genmoveN.o ataks.o util.o evalN.o init.o searchN.o dspcomN.o nuxdsp.o $(LIBS)
  204.         $(CC) @tmp
  205.         strip gnuchesn
  206.         aout2exe gnuchesn
  207.         del gnuchesn
  208.  
  209. game.exe: game.c gnuchess.h
  210.         >tmp $(CFLAGS) -o game game.c
  211.         $(CC) @tmp
  212.         strip game
  213.         aout2exe game
  214.         del game
  215.     
  216. postprint.exe: postprint.o
  217.         >tmp $(CFLAGS) $(HASH) -o postprint postprint.o
  218.         $(CC) @tmp
  219.         strip postprint
  220.         aout2exe postprint
  221.         del postprint
  222.     
  223. bincheckr.exe: bincheckr.o
  224.         >tmp $(CFLAGS) -o bincheckr bincheckr.o
  225.         $(CC) @tmp
  226.         strip bincheckr
  227.         aout2exe bincheckr
  228.         del bincheckr
  229.     
  230. checkgame.exe: checkgame.o
  231.         >tmp $(CFLAGS) -o checkgame checkgame.o
  232.         $(CC) @tmp
  233.         strip checkgame
  234.         aout2exe checkgame
  235.         del checkgame
  236.  
  237. checkbook.exe: checkbook.o
  238.         >tmp $(CFLAGS) -o checkbook checkbook.o
  239.         $(CC) @tmp
  240.         strip checkbook
  241.         aout2exe checkbook
  242.         del checkbook
  243.  
  244. gnuan.o: gnuan.c gnuchess.h version.h
  245.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) $(BINBOOK) -c gnuan.c
  246.         $(CC) @tmp
  247.  
  248. mainN.o: main.c gnuchess.h version.h
  249.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) $(BINBOOK) -c main.c
  250.         $(CC) @tmp
  251.         del mainN.o
  252.         rename main.o mainN.o
  253.  
  254. genmoveN.o: genmove.c gnuchess.h version.h
  255.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c genmove.c
  256.         $(CC) @tmp
  257.         del genmoveN.o
  258.         rename genmove.o genmoveN.o
  259.  
  260. bookN.o: book.c gnuchess.h version.h ataks.h
  261.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) $(BINBOOK) -c book.c
  262.         $(CC) @tmp
  263.         del bookN.o
  264.         rename book.o bookN.o
  265.  
  266. ataks.o: ataks.h ataks.c gnuchess.h version.h
  267.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c ataks.c
  268.         $(CC) @tmp
  269.  
  270. util.o: util.c gnuchess.h version.h
  271.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c util.c
  272.         $(CC) @tmp
  273.  
  274. evalN.o: eval.c gnuchess.h version.h
  275.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c eval.c
  276.         $(CC) @tmp
  277.         del evalN.o
  278.         rename eval.o evalN.o
  279.  
  280. init.o: init.c gnuchess.h version.h
  281.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c init.c
  282.         $(CC) @tmp
  283.  
  284. searchN.o: search.c gnuchess.h version.h debug512.h debug10.h debug13.h debug16.h debug256.h debug4.h debug40.h debug41.h debug64.h debug8.h
  285.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c search.c
  286.         $(CC) @tmp
  287.         del searchN.o
  288.         rename search.o searchN.o
  289.  
  290. uxdsp.o: uxdsp.c gnuchess.h version.h
  291.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c uxdsp.c
  292.         $(CC) @tmp
  293.  
  294. nuxdsp.o: nuxdsp.c gnuchess.h version.h
  295.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c nuxdsp.c
  296.         $(CC) @tmp
  297.  
  298. nondspR.o: nondsp.c gnuchess.h version.h
  299.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -DNONDSP -c nondsp.c
  300.         $(CC) @tmp
  301.         del nondspR.o
  302.         rename nondsp.o nondspR.o
  303.  
  304. dspcomN.o: dspcom.c gnuchess.h version.h
  305.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -c dspcom.c
  306.         $(CC) @tmp
  307.         del dspcomN.o
  308.         rename dspcom.o dspcomN.o
  309. dspcomR.o: dspcom.c gnuchess.h version.h
  310.         >tmp $(CFLAGS) $(HASH) $(LANG) $(BOOK) -DNONDSP -c dspcom.c
  311.         $(CC) @tmp
  312.         del dspcomR.o
  313.         rename dspcom.o dspcomR.o
  314.  
  315. postprint.o: postprint.c gnuchess.h version.h
  316.         >tmp $(CFLAGS) $(HASH) -c postprint.c
  317.         $(CC) @tmp
  318.  
  319. huge.book.data:
  320.         del .\gnuchess.dat
  321.         gnuchesr -b .\gnuchess.bk1 -B ./gnuchess.dat -S 320000 -P 24
  322.         del \t
  323.  
  324. big.book.data:
  325.         del .\gnuchess.dat
  326.         gnuchesr -b .\gnuchess.bk1 -B ./gnuchess.dat -S 45000 -P 16
  327.         del \t
  328.  
  329. med.book.data:
  330.         del .\gnuchess.dat
  331.         gnuchesr -b .\gnuchess.bk1 -B ./gnuchess.dat -S 20000 -P 12
  332.         del \t
  333.  
  334. small.book.data:
  335.         del .\gnuchess.dat
  336.         gnuchesr -b .\gnuchess.bk1 -B ./gnuchess.dat -S 12000 -P 10
  337.         del \t
  338.  
  339. tiny.book.data:
  340.         del .\gnuchess.dat
  341.         gnuchesr -b .\gnuchess.bk1 -B ./gnuchess.dat -S 9000 -P 8
  342.         del \t
  343.  
  344.  
  345. distribution:
  346.     -patchlevel=`cat $(DISTDIR)/gnuchess-$(VERS)/src/version.h|grep patchlevel|sed -e 's/[^0-9]//g'` ;\
  347.     echo "GNU patchlevel is $$patchlevel" ;\
  348.     xpatchlevel=`cat $(DISTDIR)/xboard-$(XVERS)/patchlevel.h|sed -e "s/#define PATCHLEVEL //"` ;\
  349.     cd $(DISTDIR) ;\
  350.     rm -f gnuchess.tar.$(VERS).Z* gnuchess.tar.$(VERS).Z.uu* ;\
  351.     tar cf - $(PROGS) | compress > $(DISTDIR)/gnuchess-$(VERS).pl$$patchlevel.tar.Z ;\
  352.     uuencode gnuchess-$(VERS).pl$$patchlevel.tar.Z gnuchess-$(VERS).pl$$patchlevel.tar.Z > gnuchess-$(VERS).pl$$patchlevel.tar.Z.uu ;\
  353.     rm -f x?? ;\
  354.     split -2500 gnuchess-$(VERS).pl$$patchlevel.tar.Z.uu ;\
  355.     for i in x??; do \
  356.       mv $$i $(DISTDIR)/GNU_Chess_$$i; \
  357.     done
  358.  
  359. install: $(BOOKTYPE)
  360.         -copy gnuchesr.exe $(BINDIR1)\gnuchesr.exe
  361.         -copy gnuchesn.exe $(BINDIR1)\gnuchesn.exe
  362.         -copy postprin.exe $(BINDIR1)\postprin.exe
  363.         -copy gnuan.exe $(BINDIR1)\gnuan.exe
  364.         -copy gnuchess.exe $(BINDIR1)\gnuchess.exe
  365.         -copy bincheck.exe $(BINDIR1)\bincheck.exe
  366.         -copy checkgam.exe $(BINDIR1)\checkgam.exe
  367.         -copy checkboo.exe $(BINDIR1)\checkboo.exe
  368.         -copy game.exe $(BINDIR1)\game.exe
  369.  
  370. clean:
  371.         -del *.o
  372.         -del *.exe
  373.  
  374.